File: Autopilot.c

    1   /*
    2    * File: Autopilot.c
    3    *
    4    * Code generated for Simulink model 'Autopilot'.
    5    *
    6    * Model version                  : 1.152
    7    * Simulink Coder version         : 8.5 (R2013b) 08-Aug-2013
    8    * C/C++ source code generated on : Mon Feb 03 08:38:36 2014
    9    *
   10    * Target selection: ert.tlc
   11    * Embedded hardware selection: 32-bit Embedded Processor
   12    * Code generation objectives: Unspecified
   13    * Validation result: Not run
   14    */
   15   
   16   #include "Autopilot.h"
   17   #include "Autopilot_private.h"
   18   
   19   /* Start for referenced model: 'Autopilot' */
   20   void Autopilot_Start(rtDW_Autopilot *localDW)
   21   {
   22     /* Start for ModelReference: '<Root>/Pitch_Autopilot' */
   23     pitch_ap_Start(&(localDW->Pitch_Autopilot_DWORK1.rtdw));
   24   }
   25   
   26   /* Output and update for referenced model: 'Autopilot' */
   27   void Autopilot(const slBus1 *rtu_AirData, const slBus2 *rtu_Inertial, const
   28                  boolean_T *rtu_APEng, const boolean_T *rtu_HDGMode, const
   29                  boolean_T *rtu_ALTMode, const real_T *rtu_HDGRef, const real_T
   30                  *rtu_TurnKnob, const real_T *rtu_ALTRef, const real_T
   31                  *rtu_PitchWheel, real_T *rty_AileronCmd, real_T *rty_ElevatorCmd,
   32                  real_T *rty_RudderCmd, rtDW_Autopilot *localDW)
   33   {
   34     /* local block i/o variables */
   35     real_T rtb_airspeed;
   36     real_T rtb_phi;
   37     real_T rtb_theta;
   38     real_T rtb_q;
   39     real_T rtb_r;
   40     real_T rtb_alt;
   41     real_T rtb_altRate;
   42     real_T rtb_psi;
   43     real_T rtb_p;
   44   
   45     /* BusSelector: '<Root>/Bus Selector3' */
   46     rtb_alt = rtu_AirData->alt;
   47     rtb_altRate = rtu_AirData->altRate;
   48     rtb_airspeed = rtu_AirData->airspeed;
   49   
   50     /* BusSelector: '<Root>/Bus Selector4' */
   51     rtb_phi = rtu_Inertial->phi;
   52     rtb_psi = rtu_Inertial->psi;
   53     rtb_p = rtu_Inertial->p;
   54     rtb_theta = rtu_Inertial->theta;
   55     rtb_q = rtu_Inertial->q;
   56     rtb_r = rtu_Inertial->r;
   57   
   58     /* ModelReference: '<Root>/Pitch_Autopilot' */
   59     pitch_ap(&rtb_phi, &rtb_theta, &rtb_q, &rtb_r, &rtb_alt, &rtb_altRate,
   60              &rtb_airspeed, rtu_APEng, rtu_ALTMode, rtu_ALTRef, rtu_PitchWheel,
   61              rty_ElevatorCmd, &(localDW->Pitch_Autopilot_DWORK1.rtb),
   62              &(localDW->Pitch_Autopilot_DWORK1.rtdw), 2.0, 0.5, 2.0);
   63   
   64     /* ModelReference: '<Root>/Roll_Autopilot' */
   65     roll_ap(&rtb_phi, &rtb_psi, &rtb_p, &rtb_airspeed, rtu_APEng, rtu_HDGMode,
   66             rtu_HDGRef, rtu_TurnKnob, rty_AileronCmd,
   67             &(localDW->Roll_Autopilot_DWORK1.rtb),
   68             &(localDW->Roll_Autopilot_DWORK1.rtdw), 1.0, 1.0, 3.0, 0.015);
   69   
   70     /* ModelReference: '<Root>/Yaw_Damper' */
   71     yaw_damper(&rtb_phi, &rtb_r, &rtb_airspeed, rtu_APEng, rty_RudderCmd,
   72                &(localDW->Yaw_Damper_DWORK1.rtb), 1.0);
   73   }
   74   
   75   /* Model initialize function */
   76   void Autopilot_initialize(rtDW_Autopilot *localDW)
   77   {
   78     /* Registration code */
   79   
   80     /* states (dwork) */
   81     (void) memset((void *)localDW, 0,
   82                   sizeof(rtDW_Autopilot));
   83   
   84     /* Model Initialize fcn for ModelReference Block: '<Root>/Pitch_Autopilot' */
   85     pitch_ap_initialize(&(localDW->Pitch_Autopilot_DWORK1.rtb),
   86                         &(localDW->Pitch_Autopilot_DWORK1.rtdw));
   87   
   88     /* Model Initialize fcn for ModelReference Block: '<Root>/Roll_Autopilot' */
   89     roll_ap_initialize(&(localDW->Roll_Autopilot_DWORK1.rtb),
   90                        &(localDW->Roll_Autopilot_DWORK1.rtdw));
   91   
   92     /* Model Initialize fcn for ModelReference Block: '<Root>/Yaw_Damper' */
   93     yaw_damper_initialize(&(localDW->Yaw_Damper_DWORK1.rtb));
   94   }
   95   
   96   /*
   97    * File trailer for generated code.
   98    *
   99    * [EOF]
  100    */
  101